package top.maochang.hou.dao;


import org.apache.shiro.authc.UsernamePasswordToken;
import top.maochang.hou.entity.SysUser;
import top.maochang.hou.vo.PageVo;

import java.sql.SQLException;
import java.util.List;

public interface UserDao {

    /**
     * @Description 登入操作
     * @param token 账户凭证信息
     * @return 是否登录成功
     */
    boolean login(UsernamePasswordToken token);

    /**
     * @Description 登出操作
     */
    void logout();


    /**
     * 分页+条件
     */
    List<SysUser> getUsers(SysUser user, PageVo pageVo) throws SQLException;

    /**
     * 查询数据总条数
     * @return
     */
    Long getUsersCount();

    /**
     * 删除用户
     */
    boolean delUser(String id) throws SQLException;

    /**
     * 改变用户状态
     */
    boolean updateStatus(String id,String state) throws SQLException;
    /**
     * 新增用户
     * @param sysUser
     */
    boolean  addUser(SysUser sysUser) throws SQLException;

    /**
     * 操作用户角色关联表-新增信息
     * @param ids
     * @return
     */
    public boolean addUserRole(String [] ids,String userId) throws SQLException;

    /**
     * 操作用户角色关联表-删除信息
     * @param roleId
     * @return
     */
    public boolean delUserRole(String roleId,String userId) throws SQLException;

    /**
     * 查询添加用户的id最大值
     * @return
     */
    public Long addUserMaxId();

    /**
     * 修改用户信息
     */
    boolean updateUser(SysUser sysUser,String ids[]) throws SQLException;

    /**
     * 重置用户密码
     */
    boolean updateUserPassword(String  UserId) throws SQLException;

}
